package top.blueShark.template.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import top.blueShark.template.entity.SysRole;

import java.util.List;


/**
 * 角色Mapper接口
 */
@Mapper
public interface SysRoleMapper {

	// 分页查询角色列表
	List<SysRole> selectRoleList(@Param("offset") int offset, @Param("pageSize") int pageSize,@Param("status") Integer status,@Param("roleName") String roleName);


	// 分页查询角色列表
	List<SysRole> selectRoleListByStatus(@Param("status") String status);

	// 查询角色总数
	int selectRoleCount();

	// 查询角色的菜单ID列表 (原 selectPermissionIdsByRoleId)
	List<Integer> selectMenuIdsByRoleId(@Param("roleId") String roleId); // 返回 Integer 列表，对应 menu_id

	/**
	 * 插入角色
	 */
	int insertRole(SysRole role);

	/**
	 * 批量插入角色菜单关联 (原 insertRolePermissions)
	 */
	int insertRoleMenus(@Param("roleId") String roleId, @Param("menuIds") List<Integer> menuIds); // 接收 List<Integer> menuIds

	/**
	 * 更新角色
	 */
	int updateRole(SysRole role);

	/**
	 * 删除角色所有菜单关联 (原 deleteRolePermissions)
	 */
	int deleteRoleMenus(@Param("roleId") String roleId); // 删除方法名也更改

    // 新增：根据ID查询角色
    SysRole selectById(@Param("id") String id);

    List<SysRole> selectAllRoles();

    SysRole selectByRoleName(@Param("roleName") String roleName);

    List<String> getRoleIdsByRoleName(@Param("roleNames") List<String> userRolesName);

	void delete(@Param("id") String id);
}